﻿using System;
using System.Collections;
using SharpCommon.Core;

//遍历文件夹所有的文件

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            //LinkQueue linkQueue = new LinkQueue();
            ////linkQueue.Dequeue();
            //linkQueue.Enqueue("123");
            //linkQueue.Enqueue("456");
            //linkQueue.Enqueue("789");
            ////Console.WriteLine(linkQueue.Dequeue().ToString());
            //linkQueue.Dequeue();
            //foreach (object obj in linkQueue)
            //{
            //    Console.WriteLine(obj.ToString());
            //}

            //LinkQueue<string> test = new LinkQueue<string>();
            //test.Enqueue("123");
            //test.Dequeue();
            //test.Dequeue();
            //foreach (string value in test)
            //{
            //    Console.WriteLine(value);
            //}
            ////Console.WriteLine(test.Dequeue());
            //int number = 10;
            //Console.WriteLine(number--);
            //Console.WriteLine(--number);

            //int a = 1;
            //int b = 1;

            //// ++a
            //a++;
            //Console.WriteLine("One-" + a);
            //Console.WriteLine("Two-" + a);
            ////b++
            //Console.WriteLine("One-" + b);
            //b++;
            //Console.WriteLine("Two-" + b);
            //for (int i = 1; 10 >= ++i;)
            //{
            //    Console.WriteLine(i);
            //}

            LinkNode linkNode = new LinkNode(1, new LinkNode(2, new LinkNode(3, null)));

            //要定义三个变量：
            //1当前节点 2.下一个节点 
            //LinkNode next = null;
            //LinkNode previous = null;

            //LinkNode 当前节点 = linkNode;
            //LinkNode 下一个节点 = null;

            //while (当前节点 != null)
            //{
            //    //获取下一个节点
            //    LinkNode next = 当前节点.NextNode; 
            //    //设置当前节点下一个节点是什么
            //    当前节点.NextNode = 下一个节点; 



            //    //下面都是为了下一次反序做准备
            //    //设置下一个节点是什么
            //    下一个节点 = 当前节点; 
            //    //设置下一次循环的节点是什么
            //    当前节点 = next; 
            //}

            LinkNode currentNode = linkNode; //只是作为一个存储变量而已
            LinkNode nextNode = null;  //这个才是头部节点

            while (currentNode != null)
            {
                //下面是赋值
                LinkNode node = currentNode.NextNode;
                currentNode.NextNode = nextNode;

                //下面是为下一次循环做准备
                nextNode = currentNode;
                currentNode = node;
            }

            while (nextNode != null)
            {
                Console.WriteLine(nextNode.Data);
                nextNode = nextNode.NextNode;
            }

            Console.ReadLine();
        }
    }
}
